在前一篇文章中,介紹如何使用OpenNETCF.Media.WaveAudio 作錄音,在本文中,將透過OpenNETCF.Media.WaveAudio 播放音樂
更多文章,請到我在點部落所建立的部落格「.NET菜鳥自救會」閱讀
http://www.dotblogs.com.tw/chou/
簡介
在前一篇文章中,介紹如何使用OpenNETCF.Media.WaveAudio 作錄音,在本文中,將透過OpenNETCF.Media.WaveAudio 播放音樂
方法
2.1 下載、加入參考、引用 OpenNetCF 於 C:\Program Files\Smart Device Framework\Bin\OpenNETCF.dll
下載 Smart Device Framework
於專案中加入參考
2.2 使用 Player 類別
在 OpenNETCF 中,可使用 Play 類別進行播放,請參考以下程式碼與註解
http://www.opennetcf.com/library/sdf/html/b8f79788-d32c-2b7d-ce25-349f1d616259.htm
#region 使用 Player 類別播放
Player player; // 宣告 Player 類別變數 player
// 播放
private void miPlay_Click(object sender, EventArgs e)
{
// 初始化 Player 類別變數 player
player = new Player();
Stream stream = File.OpenRead(file);
player.Play(stream);
}
// 停止播放
private void miStopP_Click(object sender, EventArgs e)
{
player.Stop();
}
#endregion
2.3 具有錄音與播放的程式
當我們了解 Recorder 與 Player 類別的運作方式後,可以將程式合併,讓程式具有錄音與播放之功能。
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using OpenNETCF.Media.WaveAudio;
using System.IO;
namespace SmartDeviceProjectRecord
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string file = "test.wav";
#region 使用 Recorder 類別錄音
Recorder recorder; // 宣告 Recorder 類別變數 recorder
// 錄音
private void miRecord_Click(object sender, EventArgs e)
{
// 初始化 Recorder 類別變數 recorder
recorder = new Recorder();
// 透過 Recorder.RecordFor 方法開始錄音
// RecordFor(Stream 檔案, Int16 錄音時間(秒), SoundFormats 格式)
Stream stream = File.OpenWrite(file);
Int16 intRecordLength = 15;
recorder.RecordFor(stream, intRecordLength, SoundFormats.Mono8bit11kHz);
}
// 停止錄音
private void miStop_Click(object sender, EventArgs e)
{
recorder.Stop();
}
#endregion
#region 使用 Player 類別播放
Player player; // 宣告 Player 類別變數 player
// 播放
private void miPlay_Click(object sender, EventArgs e)
{
// 初始化 Player 類別變數 player
player = new Player();
Stream stream = File.OpenRead(file);
player.Play(stream);
}
// 停止播放
private void miStopP_Click(object sender, EventArgs e)
{
player.Stop();
}
#endregion
}
}